package obligatorio;
import java.util.ArrayList;
public class Central911 {
	public ArrayList<Llamada> llamadasEntrada = new ArrayList<Llamada>(); // Es la cola de entrada de las llamadas.
	public ArrayList<Llamada> llamadasEnEspera = new ArrayList<Llamada>(); // Es la cola de llamadas en espera.
	public ArrayList<Operador> listaDeOperadores = new ArrayList<Operador>(); // Es la lista de operadores trabajando en la Central.
	public ArrayList<Operador> listaDeOperadoresLibres = new ArrayList<Operador>(); // Es la lista de operadores de la Central.
	
	public ArrayList<Llamada> getColaEntrada(){
		return llamadasEntrada;
	}
	public ArrayList<Llamada> getColaEnEspera(){
		return llamadasEnEspera;
	}
	
	public Operador getPrimerOperadorLibre(){
		return listaDeOperadoresLibres.get(0);
	}
	public static ArrayList<Operador> cargarListaOperadores(String nombreArchivo){
		String[] lineas = ManejadorArchivos.leerArchivo(nombreArchivo);
		String unArray[] = new String[4];
		ArrayList<Operador> listaADevolver = new ArrayList<Operador>();
		for (int i=0;i<lineas.length;i++){
			unArray = lineas[i].split(",");
			Operador unOperador = cargarOperador(unArray);
			listaADevolver.add(unOperador);
		}
		return listaADevolver;
	}
	public static Operador cargarOperador(String[] unArray){
		String id = unArray[0];
		String tipo = unArray[1];
		Boolean ocupado = false;
		String ubicacion = unArray[3];
		Operador unOperador = new Operador(id,tipo,ocupado,ubicacion);
		return unOperador;
	}
	public static ArrayList<Llamada> cargarListaLlamadas(String nombreArchivo){
		String[] lineas = ManejadorArchivos.leerArchivo(nombreArchivo);
		String unArray[] = new String[8];
		ArrayList<Llamada> listaADevolver = new ArrayList<Llamada>();
		for (int i=0;i<lineas.length;i++){
			unArray = lineas[i].split(",");
			Llamada unaLlamada = cargarLlamada(unArray);
			listaADevolver.add(unaLlamada);
		}
		return listaADevolver;
	}
	public static Llamada cargarLlamada(String[] unArray){
		String id = unArray[0];
		String cedula = unArray[1];
		int ci = Integer.parseInt(cedula);
		String tipoE = unArray[2];
		String unString = unArray[3];
		String subStr = unString.substring(1,2); 
		int x = (int)Integer.parseInt(subStr);
		String subStr2 = unString.substring(3,4);
		int y = Integer.parseInt(subStr2);
		Posicion unaPosicion = new Posicion(x,y);
		String destacamento = unArray[4];
		String horaEntrada = unArray[5];
		int he = Integer.parseInt(horaEntrada);
		String horaAtendida = unArray[6];
		int ha = Integer.parseInt(horaAtendida);
		String horaSalida = unArray[7];
		int hs = Integer.parseInt(horaSalida);
		Llamada unaLlamada = new Llamada(id,ci,tipoE,unaPosicion,destacamento,he,ha,hs);
		return unaLlamada;
	}
	public Central911(ArrayList<Llamada> llamadasEntrada,ArrayList<Llamada> llamadasEnEspera, ArrayList<Operador> listaDeOperadores, 
			ArrayList<Operador> listaDeOperadoresLibres) {
		this.listaDeOperadores = listaDeOperadores;
		this.listaDeOperadoresLibres = listaDeOperadoresLibres;
		this.llamadasEnEspera = llamadasEnEspera;
		this.llamadasEntrada = llamadasEntrada;
		}
	
}
